<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="Content-Language" content="zh-CN"><link href="stylesheet.css" media="all" rel="stylesheet" type="text/css">
<title>概述</title>
<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>
</head><body class="SECT1">
<div>
<table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><th colspan="5" align="center" valign="bottom">PostgreSQL 8.2.3 中文文档</th></tr>
<tr><td width="10%" align="left" valign="top"><a href="queries.html" accesskey="P">后退</a></td><td width="10%" align="left" valign="top"><a href="queries.html">快退</a></td><td width="60%" align="center" valign="bottom">章7. 查询</td><td width="10%" align="right" valign="top"><a href="queries.html">快进</a></td><td width="10%" align="right" valign="top"><a href="queries-table-expressions.html" accesskey="N">前进</a></td></tr>
</table>
<hr align="LEFT" width="100%"></div>
<div class="SECT1"><h1 class="SECT1"><a name="QUERIES-OVERVIEW">7.1. 概述</a></h1>
<p>从数据库中检索数据的过程或命令叫做<i class="FIRSTTERM">查询</i>。在 SQL 里 <a href="sql-select.html"><i>SELECT</i></a> 命令用于声明查询。<tt class="COMMAND">SELECT</tt> 命令的通用语法如下：</p>
<pre class="SYNOPSIS">SELECT <tt class="REPLACEABLE"><i>select_list</i></tt> FROM <tt class="REPLACEABLE"><i>table_expression</i></tt> [<span class="OPTIONAL"><tt class="REPLACEABLE"><i>sort_specification</i></tt></span>]</pre>
<p>随后的几节将描述选择列表、表表达式、排序声明的细节。</p>
<p>简单的查询的形式如下：</p>
<pre class="PROGRAMLISTING">SELECT * FROM table1;</pre>
<p>假设有一个 <tt class="LITERAL">table1</tt> 表，这条命令将从 <tt class="LITERAL">table1</tt> 中检索所有行和所有字段。检索的方法取决于客户端应用程序。比如，<span class="APPLICATION">psql</span> 程序将在屏幕上显示一个 ASCII 艺术构成的表格，客户端库将提供检索独立行和字段的函数。选择列表声明为 <tt class="LITERAL">*</tt> 表示表表达式提供的所有可用字段。一个选择列表也可以选择可用字段的一个子集或者在检索它们之前对字段进行计算；比如，如果 <tt class="LITERAL">table1</tt> 有名为 <tt class="LITERAL">a</tt>, <tt class="LITERAL">b</tt>, <tt class="LITERAL">c</tt> 的字段(可能还有其它)，那么你可以用下面的查询(假设 <tt class="LITERAL">b</tt> 和 <tt class="LITERAL">c</tt> 都是数字数据类型)：</p>
<pre class="PROGRAMLISTING">SELECT a, b + c FROM table1;</pre>
<p>参阅<a href="queries-select-lists.html">节7.3</a>获取更多细节。</p>
<p><tt class="LITERAL">FROM table1</tt> 是一种非常简单的表表达式：它只读取了一个表。通常，表表达式可以是基本表、连接、子查询的复杂构造。但你也可以省略表表达式而只用 <tt class="COMMAND">SELECT</tt> 命令当做一个计算器：</p>
<pre class="PROGRAMLISTING">SELECT 3 * 4;</pre>
<p>如果选择列表里的表达式返回变化的结果，那么这个东西就更有用了。比如，你可以用这个方法调用函数：</p>
<pre class="PROGRAMLISTING">SELECT random();</pre>
</div>
<div>
<hr align="LEFT" width="100%">
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td width="33%" align="left" valign="top"><a href="queries.html" accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">首页</a></td><td width="33%" align="right" valign="top"><a href="queries-table-expressions.html" accesskey="N">前进</a></td></tr>
<tr><td width="33%" align="left" valign="top">查询</td><td width="34%" align="center" valign="top"><a href="queries.html" accesskey="U">上一级</a></td><td width="33%" align="right" valign="top">表表达式</td></tr>
</table>
</div>
</body></html>